This invention relates to switching in packet-based or frame-based data communication systems, and particularly to the control of a look-up process in such switches.
In a frame-based data communication system, wherein packets or frames of data are conveyed and directed under the control of, among other things, source addresses and destination addresses represented by respective data fields within the frames, it is customary to provide in a switch a database which relates source addresses obtained from frames received by the switch to other data, including a number identifying the port by which the frame was received at the switch, and preferably also the age of the relevant entry in the database. This database, customarily called xe2x80x98forwarding databasexe2x80x99 is established in order to facilitate the dispatch of frames, which are usually temporarily stored in the switch, from the appropriate port or ports. Such a forwarding database is built up by a process of learning source addresses. In particular, when a frame is received by the switch, the source address is extracted from the frame and is entered into the database against the port on which it was received. Then, when some other frame arrives at the switch, destined for that particular address, the database is searched and the frame is dispatched (after queueing and arbitration if appropriate) on the port associated with that particular source address. If a frame arrives at the switch and the destination address in that frame is not found in the table of source addresses and ports, it is customary, and prescribed by transmission standards such as IEEE 802.1d, to broadcast the frame to all ports of the switch. In order to limit the incidence of broadcast traffic, it is very desirable that a forwarding database should be maintained up-to-date by a process of xe2x80x98learningxe2x80x99 all source addresses identified in frames arriving at the switch.
Ideally, for every frame received by the switch, two look-ups are performed. A necessary look-up in the forwarding table is a destination address look-up in order to determine where to send the frame. The second look-up is to determine whether the source address in a received frame is already in the forwarding database and, if not, to execute a write operation in order to make the necessary entry of the source address and the port on which the respective frame has been received.
A forwarding database is typically stored in a memory external to a switching asic owing to the substantial capacity (memory space) required for a forwarding database. The bandwidth available for operations relating to the memory depends partly on the speed at which the memory is clocked and the width of the database (i.e. the length of words permitted in the database). The bandwidth is therefore limited partly by technological feasibility.
As data rates increase, especially from the rates of ten or one hundred megabits per second customary today to one gigabit per second and beyond, the rate at which frames are received by a switch increases accordingly. The bandwidth available for operations relating to the memory may accordingly be insufficient to perform both a destination address look-up and a source address look-up for every frame received by the switch.
In our aforementioned co-pending application of even date, entitled xe2x80x98Restriction of Source Address Look-ups in Network Switchesxe2x80x99 we describe the management of the rate at which source address look-ups are performed to ensure that the forwarding database is adequately maintained while performing destination address look-ups for every frame and allowing the transmission and forwarding of frames at xe2x80x98wire-speedxe2x80x99 (i.e. the data transmission rate) between network devices. In particular, the enabling of a source address look-up is dependent on the availability of a token. The present invention may, but need not be, used in conjunction with such a scheme and for convenience is particularly described hereinafter in the context of such a scheme.
It is customary to provide in the forwarding database an xe2x80x98agexe2x80x99 field indicating a xe2x80x98systemxe2x80x99 age at which the entry was made and to remove routinely entries from the database where the xe2x80x98agexe2x80x99 of entries differs from a current indication of system age. Such a xe2x80x98housekeepingxe2x80x99 operation is necessary to prevent the occupancy of the available storage space on entries which are unused. For example, xe2x80x98systemxe2x80x99 age may be defined as a two-bit field which is changed under software control at appropriate intervals. Such intervals may be comparatively long (such as fifteen or thirty minutes) or comparatively short (such as a few seconds or less). When an entry is made in the database, the accompanying age field is entered according to the relevant current system age (such as 00, 01 etc). Thus when the age is currently xe2x80x9810xe2x80x99, the entries having the ages denoted 00, 01 and 11 would be removed. Other schemes, where the age indication is a one-bit field or has more than two bits, are feasible. It is also feasible, if the age field comprises two or more bits, to consider ages as different only if their difference indicates at least two of the intervals at which the system age is changed. However it is more convenient to treat any difference between an age of an entry and the system age as significant and to alter the aforementioned intervals if required.
The present invention is based on comparing the age field of a source address when it is found with a current xe2x80x98systemxe2x80x99 age and either up-dating the source address entry in the database if the age field corresponds to the xe2x80x98systemxe2x80x99 age or inhibiting that up-dating in the absence of such correspondence. The omission represents a saving in bandwidth write cycle necessary for such an updating.
Further features of the invention will be apparent from the following description with reference to the drawings.